#include "DiceRoller2.h" #include /* * Class: DiceRoller2 * Method: seedRand * Signature: ()V */ JNIEXPORT void JNICALL Java_DiceRoller2_seedRand (JNIEnv *env, jobject jobj) { srand(time(NULL)); } /* * Class: DiceRoller2 * Method: getNext * Signature: ()I */ JNIEXPORT jint JNICALL Java_DiceRoller2_getNext (JNIEnv *env, jobject jobj) { int i; i = rand()%6 + 1; return i; } /* * Class: DiceRoller2 * Method: setNext * Signature: (Ljavax/swing/JButton;)V */ JNIEXPORT void JNICALL Java_DiceRoller2_setNext (JNIEnv *env, jobject jobj1, jobject jobj2) { int i; i = rand()%6 + 1; /* set up return call to java class */ /* in C++ */ /* jclass cls = env->GetObjectClass (jobj1); */ /* in C */ jclass cls = (*env)->GetObjectClass (env, jobj1); jmethodID mid = (*env)->GetMethodID(env, cls, "setImage", "(Ljavax/swing/JButton;I)V"); if (mid == 0) { return; } printf("In C, rand() = %d, about to enter Java\n", i); (*env)->CallVoidMethod(env, jobj1, mid, jobj2, i); printf("In C, rand() = %d, back from Java\n", i); return; }